import { Body, Controller, Inject, Post } from "@nestjs/common";
import { CreateUserDto } from "./dto/create-user.dto";
import { PageUserDto } from "./dto/page-user.dto";
import { UpdateUserDto } from "./dto/update-user.dto";
import { UserService } from "./user.service";

@Controller("/sys/user")
export class UserController {
    constructor(@Inject() private readonly userService: UserService) {}

    /** 新增用户 */
    @Post("/create")
    async create(@Body() user: CreateUserDto) {
        return this.userService.create(user);
    }

    /** 删除用户 */
    @Post("/remove")
    async remove(@Body("id") id: string) {
        return this.userService.remove(id);
    }

    /** 更新用户信息 */
    @Post("/update")
    async update(@Body() user: UpdateUserDto) {
        return this.userService.update(user);
    }

    /** 更新用户状态 */
    @Post("/updateStatus")
    async updateStatus(@Body("ids") ids: string[], @Body("status") status: boolean) {
        return this.userService.updateStatus(ids, status);
    }

    /** 重置用户密码 */
    @Post("/resetPassword")
    async resetPassword(@Body("ids") ids: string[]) {
        return this.userService.resetPassword(ids);
    }

    /** 分配角色 */
    @Post("/assignRoles")
    async assignRoles(@Body("userId") userId: string, @Body("roleIds") roleIds: string[]) {
        return this.userService.assignRoles(userId, roleIds);
    }

    /** 获取用户分页列表 */
    @Post("/page")
    async page(@Body() data: PageUserDto) {
        return this.userService.page(data);
    }
}
